package cn.iocoder.yudao.module.train.controller.admin.teacher.vo;

import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDateTime;
import java.util.*;
import jakarta.validation.constraints.*;

@Schema(description = "管理后台 - 教师用户新增/修改 Request VO")
@Data
public class TeacherSaveReqVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "25414")
    private Long id;

    @Schema(description = "微信用户关联", requiredMode = Schema.RequiredMode.REQUIRED, example = "22666")
    private Long userId;

    @Schema(description = "老师姓名", example = "王五")
    private String teacherName;

    @Schema(description = "年龄")
    private Integer teacherAge;

    @Schema(description = "老师性别（0男 1女 2未知）", example = "1")
    private Integer teacherSex;

    @Schema(description = "教师简介")
    private String teacherIntro;


    @Schema(description = "手机号码")
    @JsonProperty("teacherPhoneNumber")
    private String teacherPhoneNumber;

    @Schema(description = "出生日期")
    private LocalDateTime teacherBirthdate;

    @Schema(description = "openId")
    @JsonProperty("uOpenId")
    private String uOpenId;

    @Schema(description = "头像地址")
    @JsonProperty("uAvatar")
    private String uAvatar;

    @Schema(description = "用户名")
    @JsonProperty("uName")
    private String uName;

    @Schema(description = "帐号状态（0正常 1停用）", example = "1")
    @ExcelProperty(value = "帐号状态（0正常 1停用）", converter = DictConvert.class)
    @DictFormat("train_account_status") // TODO 代码优化：建议设置到对应的 DictTypeConstants 枚举类中
    @JsonProperty("uStatus")
    private Integer uStatus;

}
